package com.hand.hap.demo.service;

import com.hand.hap.core.IRequest;
import com.hand.hap.core.ProxySelf;
import com.hand.hap.demo.dto.OmOrderHeaders;
import com.hand.hap.demo.dto.OmOrderLines;
import com.hand.hap.system.service.IBaseService;

import java.util.List;
/**
 * 订单行service
 * @author shuai.wang02@hand-china.com
 * @date  2018/8/25 19:51
 */
public interface IOmOrderLinesService extends IBaseService<OmOrderLines>, ProxySelf<IOmOrderLinesService> {

    /**
     * 根据头表Id查询其对应的所有行表
     *
     * @param headerId 头表ID
     * @return 行表list
     * @author  shuai.wang02@hand-china.com
     */
    List<OmOrderLines> selectByHeaderId(Long headerId);

    /**
     * 根据条件查询符合条件的行信息和物料信息
     *
     * @param dto 行条件
     * @param page 当前页
     * @param pageSize 页大小
     * @param requestContext 页大小
     * @return 行表list
     * @author  shuai.wang02@hand-china.com
     */
    List<OmOrderLines> ourSelect(IRequest requestContext, OmOrderLines dto, int page, int pageSize);


    /**
     * 增加或更新头行
     *
     * @param request 请求参数
     * @param orderLinesList 要增加或更新的参数
     * @return OmOrderHeaders
     * @author  shuai.wang02@hand-china.com
     */
     List<OmOrderLines> submitLines(IRequest request, List<OmOrderLines> orderLinesList);

    /**
     * 增加或更新头行
     *
     * @param requestContext 请求参数
     * @param headerId 订单头ID
     * @return 该订单的最大行号
     * @author  shuai.wang02@hand-china.com
     */
    Long findMaxLineNumber(IRequest requestContext, Long headerId);

    /**
     * 根据headerid删除整张订单
     *
     * @param requestContext 请求参数
     * @param headerId 订单头ID
     * @return 该订单的最大行号
     * @author  shuai.wang02@hand-china.com
     */
    Integer deleteAllSingle(IRequest requestContext, Long headerId);

    /**
     * 根据headerid删除行表中的数据
     *
     * @param headerId 订单头ID
     * @return 该订单的最大行号
     * @author  shuai.wang02@hand-china.com
     */
    Integer deleteByHeaderId(Long headerId);


}